package com.ts.api.module.channel.dao;

import com.ts.api.module.channel.entity.po.ChannelMarketPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *  渠道产品贷超持久层
 */
@Mapper
public interface ChannelMarketDao {

    /**
     * 根据渠道唯一标识获取渠道贷超列表
     *
     * @param  channelId 渠道标识
     * @return List
     */
    List<ChannelMarketPO> list(@Param("channelId") Long channelId);

    /**
     *  根据贷超主键ID+渠道主键id-获取贷超实体
     *
     *  @param  channelId    渠道主键
     *  @param  marketId     贷超主键
     *  @return ChannelMarketPO
     */
    ChannelMarketPO get(@Param("channelId") Long channelId, @Param("marketId") Long marketId);

    /**
     * 根据渠道+贷超主键查询是否存在此贷超
     *
     * @param channelId 渠道id
     * @param marketId  贷超主键
     * @return int
     */
    int countByChannelIdAndMarketId(@Param("channelId") Long channelId, @Param("marketId") Long marketId);

    /**
     *  根据传递贷超IDS获取存在城市的贷超列表
     *
     *  @param listMarketIds 渠道贷超ids
     *  @return List
     */
    List<Long> listMarketAreaByMarketId(@Param("listMarketIds") List<Long> listMarketIds);

    /**
     *  根据地区编码获取渠道贷超主键id集合
     *
     *  @param  areaCode 地区编码
     *  @return List
     */
    List<Long> listMarketAreaByAreaCode(@Param("areaCode") String areaCode);
}
